<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../vue/vue.js"></script>
</head>

<body>
    <div id="root1">
        <!-- 有了app后，容器内非常干净，不含任何标签 -->
    </div>

</body>
<script>
    Vue.config.productionTip = false;

    //第一步，创建student组件。
    const student = {
        template: `
        <div>
            <h2>学生姓名:{{studentName}}</h2>
        <h2>学生年龄: {{age}}</h2>
        <button @click='age++'>增长</button>
        </div>
        `,
        data() {
            return {
                studentName: '张三',
                age: 15
            }
        },
    }

    //第一步，创建schoo1组件， 简写属性，
    const school = {
        template: `
        <div>
        <h2>学校名称: {{schoolName}}</h2>
        <h2>学校地址: {{address}}</h2>
        <student></student>
        </div>
        `,
        // 组件定义时，不能使用 el，且 data() 使用函数，用return返回值
        data() {
            return {
                schoolName: '尚硅谷',
                address: '北京昌平'
            }
        },
        components: {
            // student组件注册在school内部，属于school的嵌套组件
            // student注册在school内，而student标签也应该使用在school的template内
            student
        }
    }
    //创建 hello组件
    const hello = Vue.extend({
        template: `
    <div>
        <h2>你好啊!{{name}}</h2>
    </div>
    `,
        data() {
            return {
                name: 'Tom'
            }
        }
    })

    //创建 app组件
    const app = {
        template: `
        <div>
        <school></school>
        <hello></hello>
        </div>
        `,
        components: {
            //注册组件（局部）
            school,
            hello
        }
    }


    //创建vm
    new Vue({
        template: `<app></app>`,
        el: '#root1',
        //注册组件(局部)
        components: { app }
    })


</script>

</html>